import java.sql.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        //查询
//        m1();

        //条件查询
//        m2();

        //增加
//        m3();

        //删除
//        m4();

        //修改
//        m5();


        //1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="select * from user";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数

                //6.执行sql
                ResultSet resultSet = preparedStatement.executeQuery();

                //7.遍历结果集
                while (resultSet.next()){
                    int id = resultSet.getInt(1);
                    String name = resultSet.getString(2);
                    String pass = resultSet.getString(3);
                    System.out.println(id+"-----"+name+"-----"+pass);
                }

                //8.关闭资源
                resultSet.close();
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }

    }

    private static void m5() {
        //1.加载驱动
        try {
            //Scanner

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="update user set pass=777 where name=zhangsan;";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数

                //6.执行sql
                int result = preparedStatement.executeUpdate();

                //7.结果判断
                if(result>0){
                    System.out.println("新增成功");
                }

                //8.关闭资源
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m4() {
        //1.加载驱动
        try {

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="delete from user where id=?";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数
                preparedStatement.setObject(1,"3");

                //6.执行sql
                int result = preparedStatement.executeUpdate();

                //7.结果判断
                if(result>0){
                    System.out.println("删除成功");
                }

                //8.关闭资源
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m3() {
        //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要新增的姓名");
            String name = sc.next();
            System.out.println("密码");
            String pass = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="insert into user(name,pass) values (?,?)";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数
                preparedStatement.setObject(1,name);
                preparedStatement.setObject(2,pass);

                //6.执行sql
                int result = preparedStatement.executeUpdate();

                //7.结果判断
                if(result>0){
                    System.out.println("新增成功");
                }

                //8.关闭资源
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m2() {
        //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要查询的姓名");
            String word = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="select * from user where name like ?";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数
                preparedStatement.setObject(1,"%"+word+"%");

                //6.执行sql
                ResultSet resultSet = preparedStatement.executeQuery();

                //7.遍历结果集
                while (resultSet.next()){
                    int id = resultSet.getInt(1);
                    String name = resultSet.getString(2);
                    String pass = resultSet.getString(3);
                    System.out.println(id+"-----"+name+"-----"+pass);
                }

                //8.关闭资源
                resultSet.close();
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m1() {
        //1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            try {
                Connection connection = DriverManager.getConnection(url, "root", "Zkw2004.1027");
//                if (connection!=null){
//                    System.out.println("连接成功");
//                }

                //3.写sql
                String sql="select * from user";

                //4.预编译sql
                PreparedStatement preparedStatement = connection.prepareStatement(sql);

                //5.有参数设置参数

                //6.执行sql
                ResultSet resultSet = preparedStatement.executeQuery();

                //7.遍历结果集
                while (resultSet.next()){
                    int id = resultSet.getInt(1);
                    String name = resultSet.getString(2);
                    String pass = resultSet.getString(3);
                    System.out.println(id+"-----"+name+"-----"+pass);
                }

                //8.关闭资源
                resultSet.close();
                preparedStatement.close();
                connection.close();

            } catch (SQLException e) {
                throw new RuntimeException(e);
            }

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }

    }
}